Screen Open 1,SX,SY,Screen Colour,32 : Curs Off : Flash Off : Cls 0 : Get Palette 0
For I#=2 To SY Step SPEED : T#=SY/I# : IND=0 : For J#=1 To SY Step T#
Screen Copy 0,0,J#,SX,J#+1 To 1,0,IND
Inc IND : Next J# : Next I#
End Proc
Repeat
If Key State(69) Then End
Until Inkey$<>""
Sam Play 4,8
Screen Open 0,640,256,16,Hires
Curs Off : Flash Off : Hide
Load Iff "oberfl�che.iff"
Load "sounds.abk"
Load "kn�pfe.abk"
Rem ---------------- put bobs first time on screen -----------
Bob 1,25,46,4
Bob 0,251,47,4
Bob 3,466,156,1
Bob 4,528,156,8
Bob 10,550,41,10
Bob 12,302,220,13
Rem ----- setting up the variables -----
P=0
V=1
MUSI=0
BL=0
VMAIN=158
VVOICE=156
VBEAT=158
FILTER=0
T=16
_LBOB=12
R$="rhytm1.abk"
Rem --------------
Key Speed 440,440
Led Off
Hide
Rem ----- starting the mainloop --------
Synchro
Do
If Key State(49) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,46,4 : Wait Vbl : Bob 8,160,44,1 : Wait 5 : Bob Off 8 : R$="rhytm1.abk"
If Key State(50) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,62,4 : Wait Vbl : Bob 8,160,60,1 : Wait 5 : Bob Off 8 : R$="rhytm2.abk"
If Key State(51) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,80,4 : Wait Vbl : Bob 8,160,77,1 : Wait 5 : Bob Off 8 : R$="rhytm3.abk"
If Key State(52) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,98,4 : Wait Vbl : Bob 8,160,95,1 : Wait 5 : Bob Off 8 : R$="rhytm4.abk"
If Key State(53) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,117,4 : Wait Vbl : Bob 8,160,114,1 : Wait 5 : Bob Off 8 : R$="rhytm5.abk"
If Key State(54) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,137,4 : Wait Vbl : Bob 8,160,132,1 : Wait 5 : Bob Off 8 : R$="rhytm6.abk"
If Key State(55) Then BL=0 : Sam Play 4,8,24000 : Bob 1,25,156,4 : Wait Vbl : Bob 8,160,151,1 : Wait 5 : Bob Off 8 : R$="rhytm7.abk"
If Key State(64) Then Music Off : Sam Play 4,8 : Bob 6,45,220,1 : Wait 5 : Bob Off 6 : Bob Off 7 : M=0 : Return
If Key State(80) Then V=1 : Sam Play 4,8,24000 : Bob 0,251,47,4 : Wait Vbl : Bob 2,349,44,1 : Wait 5 : Bob Off 2
If Key State(81) Then V=3 : Sam Play 4,8,24000 : Bob 0,251,63,4 : Wait Vbl : Bob 2,349,60,1 : Wait 5 : Bob Off 2
If Key State(82) Then V=2 : Sam Play 4,8,24000 : Bob 0,251,80,4 : Wait Vbl : Bob 2,349,77,1 : Wait 5 : Bob Off 2
If Key State(83) Then V=4 : Sam Play 4,8,24000 : Bob 0,251,98,4 : Wait Vbl : Bob 2,349,95,1 : Wait 5 : Bob Off 2
If Key State(84) Then V=5 : Sam Play 4,8,24000 : Bob 0,251,116,4 : Wait Vbl : Bob 2,349,113,1 : Wait 5 : Bob Off 2
If Key State(85) Then V=6 : Sam Play 4,8,24000 : Bob 0,251,134,4 : Wait Vbl : Bob 2,349,132,1 : Wait 5 : Bob Off 2
If Key State(86) Then V=7 : Sam Play 4,8,24000 : Bob 0,251,152,4 : Wait Vbl : Bob 2,349,151,1 : Wait 5 : Bob Off 2
If Key State(87) Then If BL=0 Then Load R$ : BL=1 : Gosub _BEATCOMP : Else Gosub _BEATCOMP
If Key State(69) Then Key Speed 10,1 : Music Off : Sam Stop : Goto _ENDE
If Key State(16) Then Sam Play 4,V,8000+P
If Key State(2) Then Sam Play 4,V,8500+P
If Key State(17) Then Sam Play 4,V,9000+P
If Key State(3) Then Sam Play 4,V,9500+P
If Key State(18) Then Sam Play 4,V,10000+P
If Key State(19) Then Sam Play 4,V,10600+P
If Key State(5) Then Sam Play 4,V,11200+P
If Key State(20) Then Sam Play 4,V,12000+P
If Key State(6) Then Sam Play 4,V,12600+P
If Key State(21) Then Sam Play 4,V,13300+P
If Key State(7) Then Sam Play 4,V,14300+P
If Key State(22) Then Sam Play 4,V,15000+P
If Key State(23) Then Sam Play 4,V,16000+P
If Key State(9) Then Sam Play 4,V,17000+P
If Key State(24) Then Sam Play 4,V,18050+P
If Key State(10) Then Sam Play 4,V,19005+P
If Key State(25) Then Sam Play 4,V,20010+P
If Key State(26) Then Sam Play 4,V,21000+P+P
If Key State(12) Then Sam Play 4,V,22000+P+P
If Key State(27) Then Sam Play 4,V,23800+P+P
If Key State(13) Then Sam Play 4,V,25000+P+P
If Key State(70) Then Gosub SET_FILT
_SETTEMPO:
If Key State(74) Then If T<>1 Then T=T-1 : Tempo T : Wait 1 : Goto _SETTEMPO : Else Goto _SETTEMPO
If Key State(94) Then If T<>80 Then T=T+1 : Tempo T : Wait 1 : Goto _SETTEMPO : Else Goto _SETTEMPO
MAINVOL:
If Key State(88) Then If MVOL+30*2<>1 Then MVOL=MVOL-1 : Volume MVOL+30*2 : Wait Vbl : Bob 3,466,VMAIN-MVOL,1 : Goto MAINVOL : Else Goto MAINVOL
If Key State(89) Then If MVOL+30*2<>63 Then MVOL=MVOL+1 : Volume MVOL+30*2 : Wait Vbl : Bob 3,466,VMAIN-MVOL,1 : Goto MAINVOL : Else Goto MAINVOL
VOCVOL:
If Key State(77) Then If VVOL+30*2<>1 Then VVOL=VVOL-1 : Volume 4,VVOL+30*2 : Wait Vbl : Bob 4,528,VVOICE-VVOL,8 : Goto VOCVOL : Else Goto VOCVOL
If Key State(76) Then If VVOL+30*2<>63 Then VVOL=VVOL+1 : Volume 4,VVOL+30*2 : Wait Vbl : Bob 4,528,VVOICE-VVOL,8 : Goto VOCVOL : Else Goto VOCVOL
If Key State(56) Then Gosub FTDOWN
If Key State(57) Then Gosub FTUP
Wait Key
Clear Key
Wait Vbl
Tempo T
Loop
_BEATCOMP:
If M=0 Then Sam Play 4,8 : Bob 6,45,220,1 : Wait 5 : Bob Off 6 : Sam Stop : Music 1 : Bob 7,25,223,4 : M=1 : Return : Else If M=1 Then Music Off : Sam Play 4,8 : Bob 6,45,220,1 : Wait 5 : Bob Off 6 : Bob Off 7 : M=0 : Return
Wait Key
Return
_ENDE:
Fade 1
Wait 10
Volume 1,63
Wait 1
Volume 63
Screen Open 0,320,256,32,Lowres
Curs Off : Flash Off : Hide
Load Iff "endbild.iff"
Sam Play 2,7,8000
Wait Key
Cls 0
Sam Play 4,8,34000
Show
End
SET_FILT:
If FILTER=0
Sam Play 4,8,12000
Wait 2
Sam Stop
Led On
Bob 9,465,40,12
Wait Vbl
Bob 10,550,40,9
FILTER=1
Else
Sam Play 4,8,16784
Wait 2
Sam Stop
Led Off
Bob Off 9
Bob 10,550,41,10
Wait Vbl
FILTER=0
End If
Return
FTUP:
If _LBOB=11 Then P=P+20
If _LBOB=12 Then P=P+20 : Bob 12,302,220,13 : _LBOB=13 : Return
If _LBOB=13 Then P=P+20 : Bob 12,302,220,14 : _LBOB=14 : Return
If _LBOB=14 Then P=P+20 : Bob 12,302,220,15 : _LBOB=15 : Return
If _LBOB=15 Then P=P+20 : Bob 12,302,220,16 : _LBOB=16 : Return
If _LBOB=16 Then P=P+20 : Bob 12,302,220,17 : _LBOB=17 : Return
If _LBOB=17 Then P=P+20 : Bob 12,302,220,18 : _LBOB=18 : Return
If _LBOB=18 Then P=P+20 : Bob 12,302,220,19 : _LBOB=19 : Return
If _LBOB=19 Then P=P+20 : Bob 12,302,220,20 : Return
Return
FTDOWN:
Bob 11,300,220,22
If _LBOB=12 Then P=P+20 : Bob 12,302,220,13 : _LBOB=11 : Return
If _LBOB=13 Then P=P+20 : Bob 12,302,220,14 : _LBOB=12 : Return
If _LBOB=14 Then P=P+20 : Bob 12,302,220,15 : _LBOB=13 : Return
If _LBOB=15 Then P=P+20 : Bob 12,302,220,16 : _LBOB=14 : Return
If _LBOB=16 Then P=P+20 : Bob 12,302,220,17 : _LBOB=15 : Return
If _LBOB=17 Then P=P+20 : Bob 12,302,220,18 : _LBOB=16 : Return
If _LBOB=18 Then P=P+20 : Bob 12,302,220,19 : _LBOB=17 : Return
If _LBOB=19 Then P=P+20 : Bob 12,302,220,20 : _LBOB=18 : Return